#include<cstdio>
#include<algorithm>
using namespace std;
const int INF=0xfffffff;
int w[11],C1,C2,n,m;
int state[1024],dp[1024][1024];
bool v[111];
bool ok(int x)
{
    int i,j,sum=0;
    for(i=0;i<=C1;++i)v[i]=0;
    v[0]=1;
    for(i=1;i<=n;++i)
        if(x&(1<<(i-1)))
        {
            sum+=w[i];
            for(j=C1-w[i];j>=0;--j)
                if(v[j])v[j+w[i]]=1;
        }
    for(i=C1;i>=0;--i)
        if(v[i]&&sum-i<=C2)return 1;
    return 0;
}
int main()
{
	int T;
	scanf("%d",&T);
	for(int cas=1;cas<=T;cas++)
	{
		scanf("%d%d%d",&n,&C1,&C2);
		for(int i=1;i<=n;i++)
			scanf("%d",&w[i]);
		m=0;
		int S=(1<<n)-1;
		for(int i=1;i<=S;i++)
			if(ok(i)){m++;state[m]=i;}
//		for(int i=1;i<=m;i++)
//			printf("%d\n",state[i]);
		dp[0][0]=0;
		for(int i=1;i<=S;i++)dp[0][i]=INF;
		for(int i=1;i<=m;i++)
			for(int j=0;j<=S;j++)
			{
				dp[i][j]=min(dp[(i-1)][j],dp[(i-1)][j-(j&state[i])]+1);
			}
		printf("Scenario #%d:\n%d\n\n",cas,dp[m][S]);
	}
	return 0;
}
